package tournoi.modele;

import java.io.Serializable;

import javax.persistence.*;

/**
 * Classe definissant l'objet but. Un but contiendra un id genere automatique.
 * On pourra avoir comme informations supplementaire sur lui son buteur et la
 * minute a laquelle il a ete marque
 * 
 * @author Florent Champigny, Kevin De Jesus Ferreira and Julien Mialon
 * 
 */
@Entity
public class But implements Serializable {

	private static final long serialVersionUID = 6203745724091983346L;

	/**
	 * Id correspondant au but
	 */
	@Id
	@GeneratedValue
	private int id;

	/**
	 * Minute a laquelle le but a ete marque dans le match
	 */
	private int minuteMarque;

	/**
	 * Joueur ayant marque le but
	 */
	@ManyToOne
	private Joueur buteur;

	public static final int TEMPSREGLEMENTAIRE = 0;
	public static final int PROLONGATION = 1;
	public static final int TIRAUBUT = 2;

	/**
	 * Permet de savoir si un but a ete mis dans le temps reglementaire, dans la
	 * prolongation ou au tir au but. Peut etre :TEMPSREGLEMENTAIRE,
	 * PROLONGATION ou TIRAUBUT
	 */
	private int typeBut = TEMPSREGLEMENTAIRE;

	// ########### Affichage ######################

	public String afficherTypeBut() {
		if (this.typeBut == TEMPSREGLEMENTAIRE)
			return " dans le temps réglementaire";

		if (this.typeBut == PROLONGATION)
			return " dans les prolongations";

		if (this.typeBut == TIRAUBUT)
			return " dans les tirs aux buts";
		return "";
	}

	// ########### Getters and Setters ############

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public int getMinuteMarque() {
		return minuteMarque;
	}

	public void setMinuteMarque(int minuteMarque) {
		this.minuteMarque = minuteMarque;
	}

	public Joueur getButeur() {
		return buteur;
	}

	public void setButeur(Joueur buteur) {
		this.buteur = buteur;
	}

	public int getTypeBut() {
		return typeBut;
	}

	public void setTypeBut(int typeDuBut) {
		this.typeBut = typeDuBut;
	}

	public boolean isTempReglementaire() {
		return typeBut == TEMPSREGLEMENTAIRE;
	}

	public boolean isButProlongation() {
		return typeBut == PROLONGATION;
	}

	public boolean isTirAuBut() {
		return typeBut == TIRAUBUT;
	}
}
